os

https://docs.python.org/3.7/library/os.html

提供通用的、基本的操作系统交互功能

  • 常用路径操作:os.path子库,处理文件路径及信息
  • 进程管理:启动系统中其他程序
  • 环境参数:获得系统软硬件信息等环境参数
  • 文件操作
  • 。。。

路径操作

os.path子库以path为入口,用于操作和处理文件路径

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import os.path
# 或 import os.path as op

# 获取path在当前系统中的绝对路径
os.path.abspath('xx.txt') # 'C:\\Users\\xiaoy\\xx.txt'

# 归一化path的表现形式,统一用\\分隔路径
os.path.normpath('C:\\Users/xiaoy/xx.txt') # 'C:\\Users\\xiaoy\\xx.txt'

# 返回当前程序与文件之间的相对路径(relative path)
os.path.relpath(r'C:\Users\xiaoy\Desktop\Python\python课件\day3 编程新思维(X)') # 'Desktop\\Python\\python课件\\day3 编程新思维(X)'

# 返回path中的目录名称
os.path.dirname(r'C:\Users\xiaoy\Desktop\Python\python课件\day3 编程新思维(X)') # 'C:\\Users\\xiaoy\\Desktop\\Python\\python课件'

# 返回path中最后的文件名
os.path.basename(r'C:\Users\xiaoy\Desktop\Python\python课件\day3 编程新思维(X)') # 'day3 编程新思维(X)'

# 组合path与paths,返回一个路径字符串
os.path.join(r'C:/' , r'python课件\day3 编程新思维(X)') # 'C:/python课件\\day3 编程新思维(X)'

# 判断path对应文件或目录是否存在,True or False
os.path.exists(r'C:\Users\xiaoy\Desktop\Python\python课件\day3 编程新思维(X)') # True

# 判断path所对应是否为已存在的文件,True or False
os.path.isfile(r'C:\Users\xiaoy\Desktop\Python\python课件\day3 编程新思维(X)') # False

# 判断path所对应是否为已存在的目录,True or False
os.path.isdir(r'C:\Users\xiaoy\Desktop\Python\python课件\day3 编程新思维(X)') # True

# 返回path对应文件或目录上一次访问时间
os.path.getatime(r'C:\Users\xiaoy\Desktop\Python\python课件\day3 编程新思维(X)') # 1549165169.3196998

# 返回path对应文件或目录最近一次修改时间
os.path.getmtime(r'C:\Users\xiaoy\Desktop\Python\python课件\day3 编程新思维(X)') # 1548944256.950521

# 返回path对应文件或目录创建时间
os.path.getctime(r'C:\Users\xiaoy\Desktop\Python\python课件\day3 编程新思维(X)') # 1548690757.8315344

# 返回path对应文件的大小,以字节为单位,文件不存在抛出FileNotFoundError
os.path.getsize(r'C:\Users\xiaoy\Desktop\Python\python课件\day3 编程新思维(X)') # 4096 目录文件大小
os.path.getsize(r'C:\Users\xiaoy\Desktop\Python\python课件\day3 编程新思维(X)\5.4-Python常用标准库解析(中).pdf') # 2428908

进程管理

1
2
3
4
5
6
# 启动进程,返回值为命令行的调用返回信息
import os
os.system('calc')

# 关闭进程
os.kill(1110, 3)

环境参数

获取或改变系统环境信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 修改当前进程操作的路径
os.chdir(path)

# 获取进程当前的操作路径
os.getcwd()

# 获取当前系统登陆用户名称
os.getlogin()

# 获取当前系统的CPU数量
os.cpu_count()

# 获得n个字节长度的随机字符串,通常用于加解密运算
os.urandom(10) # b'\xaa\xd2^\xa5\x8d\xef\xda\x8a\xa1\xf3'

#

文件读写

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57

# 打开文件,返回文件描述符
os.open(filename,flag[,mode])
'''
| flag选项 | 含义 |
| ----------- | ------------ |
| os.O_CREAT | 创建文件 |
| os.O_RDONLY | 只读方式打开 |
| os.O_WRONLY | 只写方式打开 |
| os.O_RDWR | 读写方式打开 |
'''

# 读取文件
os.read(fd,buffersize)

# 写入文件
os.write(fd,string)

# 文件指针操作
os.lseek(fd,pos,how)


# 关闭文件
os.close(fd)

# 查看文件访问权限
os.access(path,mode)
'''
| mode选项 | 含义 |
| -------- | -------- |
| F_OK | 文件存在 |
| R_OK | 可读 |
| W_OK | 可写 |
| X_OK | 可执行 |
'''

# 返回当前目录下所有文件和目录组成的列表
os.listdir(path)

# 删除文件
os.remove(path)

# 修改文件或者目录名
os.rename(old,new)

# 创建目录
os.mkdir(path[, mode])

# 创建多级目录
makedirs(path,[,mode])


# 删除多级目录
removedirs(path)

# 删除目录(目录必须为空)
rmdir(path)